/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.unam.fciencias.ActividadesCulturales.services;

import java.util.List;
import mx.unam.fciencias.ActividadesCulturales.services.DAO.ActividadDAO;
import mx.unam.fciencias.actividadesculturales.entidades.db.Actividad;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

/**
 * Capa de Negocio para comunicarse con la capa de datos de la entidad actividad.
 * @author lumartin
 */
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public class ServicioActividad {

    /** Acceso a datos de actividad. */
    private ActividadDAO actividadDAO;

    /**
     * Obtiene a actividadDAO.
     * @return actividadDAO.
     */
    public ActividadDAO getActividadDAO() {
        return actividadDAO;
    }

    /**
     * Asigna un actividadDAO.
     * @param actividadDAO
     */
    public void setActividadDAO(ActividadDAO actividadDAO) {
        this.actividadDAO = actividadDAO;
    }

    /**
     * Obtiene una actividad a partir de su identificador.
     * @param id_actividad el identificador de la actividad
     * @return la actividad.
     */
    public Actividad getById(Long id_actividad) {
        return actividadDAO.getActividad(id_actividad);
    }

    /**
     * Obtiene las actividades apartir de su nombre o su tipo.
     * @param nombreOtipo de las actividades.
     * @return lista de las actividades.
     */
    public List<Actividad> getActividad(String nombreOtipo) {
        return actividadDAO.getActividades(nombreOtipo);
    }

    /**
     * Guarda o actualiza una actividad.
     * @param actividad a guardar.
     * @return true si se guardo false si no.
     */
    public boolean guarda(Actividad actividad) {
        return actividadDAO.guardar(actividad);
    }

    /**
     * Elimina una actividad
     * @param actividad a eliminar.
     * @return true si se elimino false si no.
     */
    public boolean elimina(Actividad actividad) {
        return actividadDAO.eliminar(actividad);
    }

}
